	org 0x0
start:
	MOV A, #0x20
	MOV R0, #0x33
	XCH A, R0     ; A = 0x33, R0=0x20

	MOV 0x20, #0x34
	XCH A, 0x20		; A = 0x34, (0x20)=0x33

	MOV R1, #0x20
	XCH A, @R1		; A=0x33, (0x20)=0x34

	MOV 0x21, #0x47
	MOV R0, #0x21
	XCHD A, @R0		; A=0x37, (0x21)=0x43
	
	SWAP A
	
	sjmp $
	
; for test
REG_SP		EQU	0x1000
REG_A		EQU	0x1001
REG_B		EQU	0x1002
REG_PSW		EQU	0x1003
REG_PC		EQU	0x1004
REG_DPTR	EQU	0x1005
CYCLE		EQU 0x1006
REG_R0		EQU	0x2000
REG_R1		EQU	0x2001
REG_R2		EQU	0x2002
REG_R3		EQU	0x2003
REG_R4		EQU	0x2004
REG_R5		EQU	0x2005
REG_R6		EQU	0x2006
REG_R7		EQU	0x2007
REG_END		EQU	0x2FFF
	org 0x600
	dw  0x20, 0x34
	dw  0x21, 0x43

	dW  REG_SP,		0x7
	dW  REG_A,		0x73
	dW  REG_B,		0x0
	dW  REG_PC,		0x14
	dw  REG_DPTR,	0x00
	dw 	CYCLE,		15

	dw  REG_END,	0
	end		